/*
 *	Copyright 2011 ja4cli
 *
 *	Licensed under the Apache License, Version 2.0 (the "License");
 *	you may not use this file except in compliance with the License.
 *	You may obtain a copy of the License at
 *
 *		http://www.apache.org/licenses/LICENSE-2.0
 *
 *	Unless required by applicable law or agreed to in writing, software
 *	distributed under the License is distributed on an "AS IS" BASIS,
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *	See the License for the specific language governing permissions and
 *	limitations under the License.
 */
package org.skarby.ja4cli.conversion;

import org.skarby.ja4cli.configuration.BooleanAlias;

public class BooleanArgumentConverter implements ArgumentConverter<Boolean> {
	private final BooleanAlias[] aliases;

	public BooleanArgumentConverter(BooleanAlias... aliases) {
		this.aliases = aliases;
	}

	@Override
	public Boolean convert(String argument) throws ArgumentConversionException {
		if (argument == null) {
			return null;
		}
		for (BooleanAlias alias : aliases) {
			if (alias.matches(argument)) {
				return alias.getValue();
			}
		}
		throw new ArgumentConversionException(String.format(
				"Unable to determine boolean value for argument [%s]", argument));
	}
	
	public BooleanAlias[] getAliases() {
		return aliases;
	}
}
